package poo.indovina_numero;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class IndovinaGUI {

	private JFrame frame;
	private JTextField risposta;
	private JButton conferma;
	private JTextArea soluzione;
	private String risE = "Hai indovinato!";
	private String risS = "Non hai indovinato, ritenta!";
	private JButton ritenta;
	private JButton btnNewButton;
	private NuovaFinestra nuova;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					IndovinaGUI window = new IndovinaGUI();
					window.frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the application.
	 */
	public IndovinaGUI() {
		initialize();
	}

	/**
	 * Initialize the contents of the frame.
	 */
	private void initialize() {
		//finestra
		frame = new JFrame();
		frame.setTitle("Indovina Numero");
		frame.setSize(550, 400);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.getContentPane().setLayout(null);
		
		//pannelli
		JPanel panel_dom = new JPanel();
		panel_dom.setBounds(0, 0, 534, 35);
		panel_dom.setBackground(new Color(135, 206, 235));
		frame.getContentPane().add(panel_dom);
		panel_dom.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5));
		
		JLabel domanda = new JLabel("Sto pensando ad un numero tra 1 e 10.  Quale?");
		domanda.setFont(new Font("Calibri", Font.PLAIN, 18));
		panel_dom.add(domanda);
		
		risposta = new JTextField(5);
		risposta.setBackground(new Color(255, 204, 255));
		panel_dom.add(risposta);
		
		conferma = new JButton("OK");
		conferma.setForeground(Color.WHITE);
		conferma.setBackground(new Color(0, 51, 102));
		conferma.setFont(new Font("Calibri", Font.BOLD, 14));
		panel_dom.add(conferma);
		
		JPanel panel_sol = new JPanel();
		panel_sol.setBounds(0, 35, 534, 303);
		panel_sol.setBackground(new Color(224, 255, 255));
		frame.getContentPane().add(panel_sol);
	
		soluzione = new JTextArea();
		soluzione.setBackground(new Color(255, 255, 153));
		soluzione.setFont(new Font("Calibri", Font.PLAIN, 14));
		soluzione.setTabSize(11);
		soluzione.setText("Soluzione: ");
		soluzione.setEditable(false);
		soluzione.setRows(11);
		soluzione.setColumns(11);
		panel_sol.add(soluzione);
		
		ritenta = new JButton("Ritenta");
		ritenta.setForeground(Color.WHITE);
		ritenta.setBackground(new Color(0, 51, 102));
		ritenta.setFont(new Font("Calibri", Font.BOLD, 16));
		panel_sol.add(ritenta);
		
		btnNewButton = new JButton("New button");
		btnNewButton.setBounds(0, 338, 534, 23);
		btnNewButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				if(e.getSource()==btnNewButton){
					 nuova = new NuovaFinestra();
					
				}
			}
		});
		frame.getContentPane().add(btnNewButton);
		
		//ActionListener
			conferma.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent e) {
					if(e.getSource()== conferma){
						String fromUser = risposta.getText();
						try{
							int numero = Integer.parseInt(fromUser);
							
							if(IndovinaNumeroGUI.errato(numero)){
								soluzione.setText("Numero inserito non valido! Clicca su RITENTA");
							}
							else if( IndovinaNumeroGUI.indovina(numero)){
							soluzione.setText(risE);
							}
							else{
								soluzione.setText(risS+" il numero esatto era: "+Integer.toString(IndovinaNumeroGUI.getEsatto()));
							}
						} catch (RuntimeException ex) {
							JOptionPane.showMessageDialog(null,"nessun numero inserito. ripetere");
					}
					}
				}
			});
		
		ritenta.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				if(e.getSource()==ritenta){
					risposta.setText(null);
					soluzione.setText("Soluzione: ");
				}
			}
		});
		
		
		
		
	}//initialize

}
